Computers and computer networks are used to exchange information in many fields such as media, commerce and telecommunication. One form of information that is commonly exchanged is video data (or image data), i.e., data representing a digitized image or sequence of images. A video conferencing feed is an example of telecommunication information which includes video data. Other examples of video data include video streams or files associated with scanned images, digitized television performances, and animation sequences, or portions thereof, as well as other forms of visual information that are displayed on a display device. Video information may be synthesized by artificially rendering video data from two or three-dimensional computer models.
Another form of information that is commonly exchanged is audio data (i.e., data representing a digitized sound or sequence of sounds). Voice telephone transmissions and video conferencing feeds are examples of telecommunication information which include audio data. Other examples of audio data include audio streams or files associated with digitized music, radio and television performances, or portions thereof, though audio data may be associated with any type of sound waveform. It is also possible to synthesize sound waveforms by artificially generating audio data having desired magnitude and frequency characteristics.
The exchange of information between computers on a network can be described in terms of between a “transmitter” and a “receiver.” In video applications, the information being exchanged contains video data and the services provided by the transmitter are associated with the processing and transmission of the video data. Similarly, in audio applications, the information being exchanged contains audio data and the services provided by the transmitter are associated with the processing and transmission of the audio data. Conventionally, multiple services provided by one or more transmitters may provide data using different protocols. The use of different protocols increases the complexity of the receivers because of the need to accommodate the various protocols. In addition, the amount of data associated with the applications may be very large. Thus, transmission of such large amounts of data over a network may cause bandwidth utilization concerns.
FIG. 1 illustrates a conventional network system 100 comprising multiple transmitters 102, 104 and 106 for sourcing data over network 108 to a single receiver 110. Receiver 110 is equipped with one or more output devices for providing video/audio output associated with received data. Transmitters 102, 104 and 106 are coupled via network 108 which may be, for example, a local area network (LAN). Each transmitter transmits data using a different protocol. For example, transmitter 102 transmits data along network connection 112A using protocol A; transmitter 104 transmits data along network connection 112B using protocol B; and transmitter 106 transmits data along network connection 112C using protocol C.
Receiver 110 may receive data over network connection 114 from network 108 under any of protocols A, B or C, as well as any other protocols used by other transmitters connected to network 108, or used by multiple services embodied within one of transmitters 102, 104 and 106. As such, receiver 110 needs to be equipped with different cards (i.e., specialized hardware for data processing) or software plug-ins to support each protocol. The need to accommodate different protocols increases the complexity of receiver 110 and necessitates hardware or software upgrades when new protocols are developed.
In a network architecture, where multiple receivers may receive data having different protocols from the network and where decoders are often specific to certain protocols, providing data decoding resources at each receiver to accommodate each type of protocol often requires multiple decoders which may be very expensive. Furthermore, the data decoding resources associated with a particular receiver may be under-utilized when a receiver (or desktop unit) is not in use.
In cases where data processing hardware is centralized, for example, at a server, adding hardware into a general purpose computer may be impractical because of the lack of physical space (e.g., slots) at the general purpose computer. In addition, centralization produces a single point of failure. For example, the server would not be available to users while decoding hardware is being inserted into the system or if the decoder fails.